<?php
class LoginController extends CustomController
{

    function doLogin()
    {
        if ($this->user->isLoggedIn())
        {
            $this->redirectTo(MODULE_HOME);
        }
        if ($_POST)
        {
            $login = $this->getValue('login');
            $err   = false;
            if (empty($login['username']))
            {
                $this->error('El nombre de usuario no puede estar vac&iacute;o');
                $err = true;
            }
            if (empty($login['password']))
            {
                $this->error('La contrase&ntilde;a no puede estar vac&iacute;a');
                $err = true;
            }
            if (!$err)
            {
                if ($this->user->login($login['username'], $login['password']))
                {
                    //$this->notice('Bienvenido nuevamente '.$this->user->getAlias());
                    $this->redirectTo(MODULE_HOME);
                }
                else
                {
                    $this->error('Los datos ingresados son incorrectos');
                }
            }
        }
        $vars = array(
            'password_forgot_action' => $this->link(MODULE_RECUPERAR_PASSWORD),
            'register_action'        => $this->link(MODULE_REGISTER)
        );
        $this->view->showLogin($vars);
    }

    function secretToken()
    {
        if ($this->user->isLoggedIn() && $this->user->hasPendAuth())
        {
            if ($_POST)
            {
                $token = $this->getValue('token');
                if (!empty($token))
                {
                    $code = $this->model->getCode($this->user->getSecret());
                    if (($code == $token) || ($token == $this->conf['general']['secret_emergency']))
                    {
                        $this->user->authOk();
                        $this->redirectTo(MODULE_HOME);
                    }
                    else
                    {
                        $this->error("Error en el token de seguridad. Deber&aacute; identificarse nuevamente");
                        $this->redirectTo(MODULE_LOGIN, MODULE_LOGIN_ACTION_LOGOUT);
                    }
                }
                else
                {
                    $this->error("Error en el token de seguridad. Deber&aacute; identificarse nuevamente");
                    $this->redirectTo(MODULE_LOGIN, MODULE_LOGIN_ACTION_LOGOUT);
                }
            }
            else
            {
                $this->view->secretToken();
            }
        }
        else
        {
            $this->redirectTo(MODULE_HOME);
        }
    }

    function logout()
    {
        //$this->notice('Usted ha abandonado el sistema satisfactoriamente');
        $this->user->logout();
        $this->redirectTo(MODULE_HOME);
    }

}
?>